#pragma once
#include <string>
#include <osgText/Text>
#include <osg/Geode>
#include <osg/PositionAttitudeTransform>
#include <osgDB/ReadFile>
#include "Quoridor.h"
#include "ControlsEventController.h"
#include "ModeButtonUpdater.h"
#include "GameboardModel.h"
#include "MenuButton.h"

using namespace osg;


class ControlsView
{
public:
	// Pattern singleton
	static ControlsView *getInstance() {
		static ControlsView* instance = new ControlsView();
		return instance;
	}

	ref_ptr<Camera> getCamera() { return camera.get(); }

	ref_ptr<Camera> buildControlsScene();

private:
	ControlsView();
	void buildScene();
	ref_ptr<MenuButton> buildButton(std::string img, std::string label, int indice, ModelFunction function);

	float imgWidth;
	float imgMarginH;
	float imgMarginV;
	int textSize;

	ref_ptr<Camera> camera;
}; 